@CLASS
pfDictionaryTests

@USE
pf/tests/pfTestCase.p
pf/collections/pfDictionary.p

@BASE
pfTestCase

@create[aTestName]
  ^BASE:create[$aTestName]

@baseTest[][dict;t;it]
  $dict[^pfDictionary::create[]]

  ^dict.add[Элемент 1;Значение 1]
  ^dict.add[Элемент 2;Значение 2]
  ^dict.add[Элемент 3;Значение 3]

  ^dict.add(4.5)[Значение 4]

  ^dict.add[value][Значение 5]

  ^pfAssert:isTrue($dict.[4.5] eq "Значение 4")

  ^pfAssert:isTrue($dict.value eq "Значение 5")

  ^pfAssert:isTrue(!^dict.contains[Элемент 4])[Элемент не найден]

  $t[^dict.foreach[it]{$it.value}[|]]
  ^pfAssert:isTrue($t eq "Значение 1|Значение 2|Значение 3|Значение 4|Значение 5")[Ошибка в итераторе: $t]

  ^dict.reverse[]
  $t[^dict.foreach[it]{$it.value}[|]]
  ^pfAssert:isTrue($t eq "Значение 5|Значение 4|Значение 3|Значение 2|Значение 1")[Ошибка реверсирования: $t]

@importTest[][dict;t;it]
  $dict[^pfDictionary::create[
    $.key1[V1]
    $.key2[V2]
    $.key11[V11]
  ]]

  $t[^dict.foreach[it]{$it.value}[|]]
  ^pfAssert:isTrue($t eq "V1|V11|V2")[Ошибка в итераторе: $t]
    
